Deriving Analysers by Folding/Unfolding of Natural Semantics and a Case Study: Slicing

نویسنده

  • Valérie Gouranton
چکیده

We consider speciications of analysers expressed as compositions of two functions: a semantic function, which returns a natural semantics derivation tree, and a property deened by recurrence on derivation trees. A recursive deenition of a dynamic analyser can be obtained by fold/unfold program transformation combined with deforestation. We apply our framework to the derivation of a slicing analysis for a logic programming language. DDrivation d'analyseurs partir d'une ssmantique naturelle par pliage/ddpliage, application l'analyse d''lagage RRsumm : Nous considdrons la spciication d'un analyseur comme la composition de deux fonc-tions : une fonction ssmantique, qui rend un arbre de ddrivation de la ssmantique naturelle, et une propriitt dddnie par rrcurrence sur les arbres de ddrivation. Une dddnition rrcursive d'un analyseur dynamique peut tre obtenue par des transformations de programmes (pliage/ddpliage), combinne avec des techniques de ddforestation. Nous appliquons notre cadre ggnnrique la ddrivation d'une analyse d''lagage pour un langage de programmation logique. preuve, analyse d''lagage. Deriving analysers by folding/unfolding of natural semantics and a case study: slicing 3

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Learning of Constraint Logic Programs by Combining Unfolding and Slicing Techniques

This paper discusses learning of Constraint Logic Programs using unfolding and slicing technique. The transformation rule for unfolding together with clause removal is a method for specialization of Logic Programs. Slicing is a program analysis technique originally developed for imperative languages. It facilitates the understanding of data flow and debugging. This paper formulates the semantic...

متن کامل

Safe Folding/Unfolding with Conditional Narrowing

Functional logic languages with a complete operational semantics are based on narrowing, a generalization of term rewriting where unification replaces matching. In this paper, we study the semantic properties of a general transformation technique called unfolding in the context of functional logic languages. Unfolding a program is defined as the application of narrowing steps to the calls in th...

متن کامل

Unfold/Fold Transformations For Definite Clause Programs

An unfold/fold program transformation system which extends the unfold/fold transformations of H. Tamaki and T. Sato is presented in this paper. The system consists of unfolding, simultaneous folding , and generalization + equality introduction rules. The simultaneous folding rule permits the folding of a set of folded clauses into a single clause, using a set of folding clauses, while the gener...

متن کامل

An Automatic Composition Algorithm

Functional logic languages with a complete operational semantics are based on narrowing, which combines the instantiation of variables with the reduction of expressions. In this paper, we investigate the relationship between partial evaluation and more general transformations based on folding/unfolding. First, we show that the transformations obtained by partial evaluators can be also achieved ...

متن کامل

Dynamic Dependence in Term rewriting Systems and its Application to Program Slicing

Program slicing is a useful technique for debugging, testing, and analyzing programs. A program slice consists of the parts of a program that (potentially) affect the values computed at some point of interest. With rare exceptions, program slices have hitherto been computed and defined in ad-hoc and language-specific ways. The principal contribution of this paper is to show that general and sem...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998